﻿using System;
using GroceryList.Front.Web.Service;
using GroceryList.Front.Web.ViewModels;
using MvcContrib;
using System.Web.Mvc;

namespace GroceryList.Front.Web.Controllers
{
    public class ListaController : Controller
    {
        //
        // GET: /Lista/
        private readonly IListaCompraService _listaCompraService;
        private readonly IProductoService _productoService;

        public ListaController(IListaCompraService listaCompraService,IProductoService productoService)
        {
            _listaCompraService = listaCompraService;
            _productoService = productoService;
        }

        public ActionResult Index(Guid? id)
        {
            var lista = _listaCompraService.ObtenerLista(id);
            return View(lista);
        }


        [HttpPost]
        public ActionResult Index(ListaCompraDto listaCompra)
        {
            var lista = _listaCompraService.GuardarLista(listaCompra);

            return this.RedirectToAction(c => c.Index(lista.Codigo));
        }

        [HttpGet]
        public PartialViewResult BuscarDetalles(Guid? codigoLista, string terminoDeBusqueda)
        {
            var listaDto = _listaCompraService.ObtenerLista(codigoLista, terminoDeBusqueda);

            return PartialView(listaDto);
        }

        [HttpGet]
        public RedirectToRouteResult NuevoProducto(Guid codigoLista, string Producto)
        {
            _productoService.CrearProducto(Producto);
            var listaDto = _listaCompraService.ObtenerLista(codigoLista, Producto);

            return this.RedirectToAction(ra => ra.Index(codigoLista));
        }

    }
}
